1. Field of the Invention
The present invention relates to a method, system and computer program product for providing CORBA Wrappers for Business Rules and, more specifically, to creating a simple user-friendly interface to CORBA objects which allows an exception to occur without disrupting a transaction within a business rules engine.
2. Discussion of the Background
Rules based processing systems date back to the introduction of LISP (List Processing) to computer technology. LISP was primarily used in the AI (Artificial Intelligence) community to manipulate lists of data. Since that time the rules processing development tools were mostly targeted for simulations and AI type systems. It has only been recently that rules based systems have found newer markets because of easier code maintenance and high data processing performance.
With the advent and subsequent pervasiveness of the Internet, newer web-based technologies have become more dominant in their use and construction. The flexibility of these architectures has been to separate the clients and servers into tiers or levels of abstraction. Also, with the introduction of expert systems, business rule technologies have become more widely used.
Software business rules are the policies and procedures of a business captured in executable format. Business logic is the logic involved in implementing the policies and procedures of the business. In this context, business logic includes the assertions, assumptions and operations that define the policies and procedures of the business. Any software code that is not concerned with manipulation of the computing environment (e.g., retrieving data from storage, memory allocation, service invocations, etc.) is potentially a business rule. Business rules range in scope from simple validations to complex, multi-step procedures. Rules are always aligned with some aspect of business processes (e.g., invoicing, sales, manufacturing), commonly called domains. At the same time, rules are often invoked across business boundaries, for example, a sales application may invoke employee (e.g., human resource) rules to calculate a commission. The separation of business logic from the internal source code has been a design pattern that has been promoted because of the flexibility it affords with respect to code reuse and modularity. A contemporary enterprise is defined by and encapsulated in its information systems. In effect, company policy manuals are now implemented in business software. The impetus for publishing policies and procedures of a business has been to enforce a consistent implementation across the enterprise. Computerization has not changed this requirement. However, implementation of such a system has been costly.
A rule, in general, is a statement that can be used to verify premises and enable a conclusion to be drawn. A rule-based system is an approach to problem solving based on an xe2x80x9cIF this, THEN thatxe2x80x9d approach that uses a set of rules, a database (DB) of information, and a xe2x80x9crule interpreterxe2x80x9d to match premises with facts and form a conclusion. There are several considerations associated with implementing business rules for an enterprise. For example, the human reasoning behind a rule, or the xe2x80x9cessencexe2x80x9d of the rule, is often changed in transitioning from human-oriented user requirements to actual software code. In addition, the same logical rules may be implemented in several different software applications in an inconsistent manner. When rules are implemented as software code, the identification of specific business rules within a software application, or across several software applications, is often difficult or impossible. Also, modifying business rules embedded in traditional software applications in response to changing business conditions is difficult, time-consuming, costly and risky. Various designs and architecture schemes have evolved to address the need to abstract business-level actions from internal code workings of the software components. Object programming languages, client/server and n-Tier architectures, as an example, have become more prevalent as the software industry has evolved.
With existing Rule Automation technology, a software object interacts with the business rules inside a rule agenda (also known as a rule engine) where execution of the rules occurs to accomplish a particular business transaction. However, current systems will not allow an exception to occur inside the rule agenda. That is, if a problem occurs within the agenda, such as an inability to access a particular rules file from a database, the business transaction is terminated and the transaction is destroyed. This may be problematic when business policies are implemented using business rules. For example, when a requestor submits a request that can only be granted if a number of business rules are satisfied, if a problem occurs in the agenda while rules are being applied to the request, the transaction will be destroyed and the rest of the business rules will not be fired. Therefore, the requestor may be granted his request even though all business rules associated with the request have not been complied with.
Moreover, because business rules files can include code commands such as Java or C++ commands directly, a rules administrator has unlimited flexibility in managing a rule automation technology system. This poses a problem, however, in that such flexibility and power requires advanced software knowledge to interface with software objects acted upon by the business rules. Therefore, existing Rule Automation technology does not allow rules administrators to make a modification or use a method off the software object server without complex code calls or access methods.
Based on the foregoing, there is a clear need for a rule automation technology system that allows an exception to occur without disrupting a transaction in the rule agenda.
In addition there is a need for a mechanism for simplifying the interface to software objects used in a Rules Automation technology system.
According to one aspect of the invention, a computer implemented system is provided for providing wrappers for rules automation technology. The system includes a business rule, a business object, an object agent representing the business object, and a business rules agenda configured to execute the business rule. The object agent is inserted into the agenda so that the business rule is directly applied to the object agent and indirectly applied to the business object to perform a business transaction.
In another embodiment, the system may also include a ruleset class configured to manage the business rule which includes conditions and actions, and a context class which includes the agenda and a working memory in which the business object and object agent are stored. In this particular embodiment, the object agent is condition matched with the business rule according to the conditions, and an object agent matching the conditions is stored in the agenda. The actions are then performed on the object agent in the agenda and indirectly apply the business rule to the business object.
According to another aspect of the invention, a computer implemented method for providing wrappers for rules automation technology is provided. The method includes providing a business rule, a business object, an object agent representing the business object, and a business rules agenda for executing the business rule. The object agent is inserted into the agenda so that business rule is directly applied to the object agent and indirectly applied to the business object.
Yet another aspect of the invention provides a computer readable medium carrying one or more sequences of one or more instructions for providing wrappers for rules automation technology, the one or more sequences of one or more instructions including instructions which, when executed by one or more processors, causes the one or more processors to perform the steps of: providing a business rule, a business object, an object agent representing the business object, and a business rules agenda for executing the business rule. The object agent is inserted into the agenda so that business rule is directly applied to the object agent and indirectly applied to the business object.